///////////////////////////////////////////////////////////////////////////
//
// Spring Engine Source File.
// Copyright (C), Dengtao 2011-2021
// ----------------------------------------------------------------------
// File name:   SfDefaultMemoryAllocator.h
// Version:     v1.0.0
// Created:     2013/06/14 21:48 by dengtao
// Compilers:   Visual Studio 2008
// Description: 
// ----------------------------------------------------------------------
// History:
//
///////////////////////////////////////////////////////////////////////////

#ifndef _SfDefaultMemoryAllocator_H_
#define _SfDefaultMemoryAllocator_H_

#include "SfMemoryAllocator.h"
#include <stdlib.h>

namespace Sunflower
{
//////////////////////////////////////////////////////////////////////////
//Summary:
//	Default memory allocator use c-style malloc and free.
//////////////////////////////////////////////////////////////////////////
class DefaultMemoryAllocator : public MemoryAllocator
{
public:
	//
	//Summary:
	//	interface : allocate memory.
	virtual void* Alloc(size_t size)
	{
		SfAssert(size > 0);
		return malloc(size);
	}

	//
	//Summary:
	//	interface: free memory
	virtual bool Free(void* p)
	{
		SfAssertValidPtr(p);
		free(p);
		return true;
	}
};

} // end of namspace Sunflower


#endif
